package com.example.utils;//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileReader;
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//import org.jaudiotagger.audio.AudioFile;
//import org.jaudiotagger.audio.AudioFileIO;
//import org.jaudiotagger.audio.exceptions.CannotWriteException;
//import org.jaudiotagger.tag.FieldKey;
//import org.jaudiotagger.tag.Tag;
//import org.jaudiotagger.tag.id3.ID3v23Tag;
//import org.jaudiotagger.tag.id3.ID3v24Tag;
//
//public class SubtitleConverter {
//    public static void main(String[] args) {
//        String srtFolderPath = "path/to/srt/folder";
//        String mp3FolderPath = "path/to/mp3/folder";
//
//        // 获取 SRT 文件列表
//        List<File> srtFiles = getFilesFromFolder(srtFolderPath, ".srt");
//
//        // 遍历 SRT 文件列表
//        for (File srtFile : srtFiles) {
//            try {
//                // 转换 SRT 文件为 LRC 格式
//                String lrcContent = convertSrtToLrc(srtFile);
//
//                // 获取对应的 MP3 文件路径
//                String mp3FilePath = getMp3FilePath(mp3FolderPath, srtFile.getName());
//
//                // 嵌入 LRC 歌词到 MP3 文件
//                embedLyricsIntoMp3(lrcContent, mp3FilePath);
//
//                System.out.println("转换并嵌入歌词成功：" + srtFile.getName());
//            } catch (IOException e) {
//                System.out.println("转换并嵌入歌词失败：" + srtFile.getName());
//                e.printStackTrace();
//            }
//        }
//    }
//
//    // 获取指定文件夹中指定扩展名的文件列表
//    private static List<File> getFilesFromFolder(String folderPath, String extension) {
//        List<File> fileList = new ArrayList<>();
//        File folder = new File(folderPath);
//
//        if (folder.exists() && folder.isDirectory()) {
//            File[] files = folder.listFiles();
//
//            if (files != null) {
//                for (File file : files) {
//                    if (file.isFile() && file.getName().endsWith(extension)) {
//                        fileList.add(file);
//                    }
//                }
//            }
//        }
//
//        return fileList;
//    }
//
//    // 将 SRT 字幕文件转换为 LRC 歌词格式
//    private static String convertSrtToLrc(File srtFile) throws IOException {
//        StringBuilder lrcBuilder = new StringBuilder();
//
//        BufferedReader reader = new BufferedReader(new FileReader(srtFile));
//        String line;
//        int index = 1;
//
//        while ((line = reader.readLine()) != null) {
//            if (line.matches("\\d{2}:\\d{2}:\\d{2},\\d{3} --> \\d{2}:\\d{2}:\\d{2},\\d{3}")) {
//                // 提取时间戳
//                String[] timestamps = line.split(" --> ");
//                String startTime = convertTimestamp(timestamps[0]);
//                String endTime = convertTimestamp(timestamps[1]);
//
//                // 添加 LRC 歌词行
//                lrcBuilder.append("[").append(startTime).append("]").append(line).append("\n");
//                lrcBuilder.append("[").append(endTime).append("]").append("\n");
//            } else if (!line.isEmpty()) {
//                // 添加 LRC 歌词文本行
//                lrcBuilder.append(line).append("\n");
//            }
//        }
//
//        reader.close();
//
//        return lrcBuilder.toString();
//    }
//
//    // 将 SRT 时间戳转换为 LRC 时间戳格式
//    private static String convertTimestamp(String timestamp) {
//        String[] parts = timestamp.split(":");
//        int hours = Integer.parseInt(parts[0]);
//        int minutes = Integer.parseInt(parts[1]);
//        String[] secondsParts = parts[2].split(",");
//        int seconds = Integer.parseInt(secondsParts[0]);
//        int milliseconds = Integer.parseInt(secondsParts[1]);
//
//        int totalSeconds = hours * 3600 + minutes * 60 + seconds;
//        return String.format("%02d:%02d.%02d", totalSeconds / 60, totalSeconds % 60, milliseconds / 10);
//    }
//
//    // 将 LRC 歌词嵌入到 MP3 文件中
//    private static void embedLyricsIntoMp3(String lrcContent, String mp3FilePath) throws IOException {
//        // 实现嵌入歌词到 MP3 的逻辑，这里省略具体实现步骤
//        // 可以使用第三方库或调用命令行工具来完成嵌入操作
//        // 例如，可以使用 JAudioTagger、jaudiotagger-2.2.5.jar 等库来操作 MP3 文件的元数据
//        // 或者调用命令行工具如 FFmpeg 来执行嵌入操作
//        // 将 LRC 歌词嵌入到 MP3 文件中
//            try {
//                // 读取 MP3 文件
//                File mp3File = new File(mp3FilePath);
//                AudioFile audioFile = AudioFileIO.read(mp3File);
//
//                // 获取或创建 ID3 标签
//                Tag tag = audioFile.getTag();
//                if (tag == null) {
//                    if (audioFile instanceof org.jaudiotagger.audio.mp3.MP3File) {
//                        tag = new ID3v23Tag();
//                        audioFile.setTag(tag);
//                    } else {
//                        tag = new ID3v24Tag();
//                        audioFile.setTag(tag);
//                    }
//                }
//
//                // 设置歌词
//                tag.setField(FieldKey.LYRICS, lrcContent);
//
//                // 保存修改后的 MP3 文件
//                AudioFileIO.write(audioFile);
//
//                System.out.println("嵌入歌词成功：" + mp3File.getName());
//            } catch (CannotWriteException e) {
//                System.out.println("嵌入歌词失败：" + mp3FilePath);
//                e.printStackTrace();
//            }
//    }
//
//    // 获取对应的 MP3 文件路径
//    private static String getMp3FilePath(String mp3FolderPath, String srtFileName) {
//        String mp3FileName = srtFileName.replace(".srt", ".mp3");
//        return mp3FolderPath + File.separator + mp3FileName;
//    }
//}
